package com.core.zyyz.pcmc.domain;

import java.io.Serializable;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.core.common.annotation.Excel;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 用户对象 pcmc_user
 *
 * @author core
 * @date 2024-10-15
 */
public class PcmcUser implements Serializable {
    private static final long serialVersionUID = 1L;

    /** 登录账号 */
    @Excel(name = "登录用户编码")
    private String userCode;

    /** 登录用户名称 */
    @Excel(name = "登录用户名称")
    private String userName;

    /** 密码 */
    private String userPassword;

    /** 员工号 */
    @Excel(name = "员工号")
    private String employeeCode;

    /** 分页默认每页显示数 */
    @Excel(name = "分页默认每页显示数")
    private Integer PAGESIZE;

    /** 菜单类型：系统字典 */
    private String menuType;

    /** 界面皮肤类型: 系统字典 */
    private String skinCode;

    /** 上次使用角色 */
    private String lastRole;

    /** 登录默认角色：开户“角色切换”功能有用 */
    private String defaultRole;

    /** 上次修改密码日期：控制密码定期修改 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date updatePasswordDate;

    /** 说明 */
    private String DESCRIPTION;

    /** 是否启用 */
    @Excel(name = "是否启用")
    private String isEnabled;

    /** 自 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date startDateActive;

    /** 至 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date endDateActive;

    /** 创建日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createDate;

    /** 创建者 */
    @Excel(name = "创建者")
    private String createBy;

    /** 最后更新日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date lastUpdateDate;

    /** 最后更新用户编码 */
    private String lastUpdateBy;

    /** 强制修改密码天数 */
    private Integer updatePasswordDays;

    /** 用户头像 */
    private String IMAGE;

    /** 是否修改密码 */
    private String updatePasswordFlag;

    /** 邮箱地址 */
    @Excel(name = "邮箱地址")
    private String EMAIL;

    public void setUserCode(String userCode)
    {
        this.userCode = userCode;
    }

    public String getUserCode()
    {
        return userCode;
    }
    public void setUserName(String userName)
    {
        this.userName = userName;
    }

    public String getUserName()
    {
        return userName;
    }
    public void setUserPassword(String userPassword)
    {
        this.userPassword = userPassword;
    }

    public String getUserPassword()
    {
        return userPassword;
    }
    public void setEmployeeCode(String employeeCode)
    {
        this.employeeCode = employeeCode;
    }

    public String getEmployeeCode()
    {
        return employeeCode;
    }
    public void setPAGESIZE(Integer PAGESIZE)
    {
        this.PAGESIZE = PAGESIZE;
    }

    public Integer getPAGESIZE()
    {
        return PAGESIZE;
    }
    public void setMenuType(String menuType)
    {
        this.menuType = menuType;
    }

    public String getMenuType()
    {
        return menuType;
    }
    public void setSkinCode(String skinCode)
    {
        this.skinCode = skinCode;
    }

    public String getSkinCode()
    {
        return skinCode;
    }
    public void setLastRole(String lastRole)
    {
        this.lastRole = lastRole;
    }

    public String getCreateBy() {
        return createBy;
    }

    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }

    public String getLastRole()
    {
        return lastRole;
    }
    public void setDefaultRole(String defaultRole)
    {
        this.defaultRole = defaultRole;
    }

    public String getDefaultRole()
    {
        return defaultRole;
    }
    public void setUpdatePasswordDate(Date updatePasswordDate)
    {
        this.updatePasswordDate = updatePasswordDate;
    }

    public Date getUpdatePasswordDate()
    {
        return updatePasswordDate;
    }
    public void setDESCRIPTION(String DESCRIPTION)
    {
        this.DESCRIPTION = DESCRIPTION;
    }

    public String getDESCRIPTION()
    {
        return DESCRIPTION;
    }
    public void setIsEnabled(String isEnabled)
    {
        this.isEnabled = isEnabled;
    }

    public String getIsEnabled()
    {
        return isEnabled;
    }
    public void setStartDateActive(Date startDateActive)
    {
        this.startDateActive = startDateActive;
    }

    public Date getStartDateActive()
    {
        return startDateActive;
    }
    public void setEndDateActive(Date endDateActive)
    {
        this.endDateActive = endDateActive;
    }

    public Date getEndDateActive()
    {
        return endDateActive;
    }
    public void setCreateDate(Date createDate)
    {
        this.createDate = createDate;
    }

    public Date getCreateDate()
    {
        return createDate;
    }
    public void setLastUpdateDate(Date lastUpdateDate)
    {
        this.lastUpdateDate = lastUpdateDate;
    }

    public Date getLastUpdateDate()
    {
        return lastUpdateDate;
    }
    public void setLastUpdateBy(String lastUpdateBy)
    {
        this.lastUpdateBy = lastUpdateBy;
    }

    public String getLastUpdateBy()
    {
        return lastUpdateBy;
    }
    public void setUpdatePasswordDays(Integer updatePasswordDays)
    {
        this.updatePasswordDays = updatePasswordDays;
    }

    public Integer getUpdatePasswordDays()
    {
        return updatePasswordDays;
    }
    public void setIMAGE(String IMAGE)
    {
        this.IMAGE = IMAGE;
    }

    public String getIMAGE()
    {
        return IMAGE;
    }
    public void setUpdatePasswordFlag(String updatePasswordFlag)
    {
        this.updatePasswordFlag = updatePasswordFlag;
    }

    public String getUpdatePasswordFlag()
    {
        return updatePasswordFlag;
    }
    public void setEMAIL(String EMAIL)
    {
        this.EMAIL = EMAIL;
    }

    public String getEMAIL()
    {
        return EMAIL;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("userCode", getUserCode())
                .append("userName", getUserName())
                .append("userPassword", getUserPassword())
                .append("employeeCode", getEmployeeCode())
                .append("PAGESIZE", getPAGESIZE())
                .append("menuType", getMenuType())
                .append("skinCode", getSkinCode())
                .append("lastRole", getLastRole())
                .append("defaultRole", getDefaultRole())
                .append("updatePasswordDate", getUpdatePasswordDate())
                .append("DESCRIPTION", getDESCRIPTION())
                .append("isEnabled", getIsEnabled())
                .append("startDateActive", getStartDateActive())
                .append("endDateActive", getEndDateActive())
                .append("createDate", getCreateDate())
                .append("createBy", getCreateBy())
                .append("lastUpdateDate", getLastUpdateDate())
                .append("lastUpdateBy", getLastUpdateBy())
                .append("updatePasswordDays", getUpdatePasswordDays())
                .append("IMAGE", getIMAGE())
                .append("updatePasswordFlag", getUpdatePasswordFlag())
                .append("EMAIL", getEMAIL())
                .toString();
    }

    //DTO
    private String roleCode;
    private String userCodeName;

    public String getRoleCode() {
        return roleCode;
    }

    public void setRoleCode(String roleCode) {
        this.roleCode = roleCode;
    }

    public String getUserCodeName() {
        return userCodeName;
    }

    public void setUserCodeName(String userCodeName) {
        this.userCodeName = userCodeName;
    }
}
